package com.demo.java.OD151_200.OD151;

import java.util.Scanner;

/**
 * @author bug菌
 * @Source 公众号：猿圈奇妙屋
 * @des： 【用户调度】问题
 * @url： https://blog.csdn.net/weixin_43970743/article/details/145740845
 */
public class OdMain {
    static int sum = 0;

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt(); // 读取数据组数
        int[][] num = new int[n][3]; // 创建二维数组存储每组数据
        for (int i = 0; i < n; i++) {
            // 读取每组三项数据
            for (int j = 0; j < 3; j++) {
                num[i][j] = sc.nextInt();
            }
        }

        // 初始化第一个组的最小值
        int index = num[0][0] < num[0][1] ? 0 : 1;
        index = num[0][index] < num[0][2] ? index : 2;
        sum = num[0][index]; // 将第一个最小值加入总和

        // 遍历剩下的每组数据，按照规则更新最小值
        for (int i = 1; i < n; i++) {
            index = fun(index, num[i]); // 更新索引和总和
        }

        // 输出最终结果
        System.out.println(sum);
    }

    // 根据上次选择的索引，选出当前组的最小值
    private static int fun(int index, int[] num) {
        int index1;
        if (index == 0) {
            index1 = num[1] < num[2] ? 1 : 2;
            sum += num[index1]; // 累加最小值
        } else if (index == 1) {
            index1 = num[0] < num[2] ? 0 : 2;
            sum += num[index1]; // 累加最小值
        } else {
            index1 = num[0] < num[1] ? 0 : 1;
            sum += num[index1]; // 累加最小值
        }
        return index1; // 返回当前选择的索引
    }
}